[INFO] cloning repository https://github.com/tajhlande/cmdify
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tajhlande/cmdify" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftajhlande%2Fcmdify", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftajhlande%2Fcmdify'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1c53147519e79ca96f4e13d392f90d1b474effc0
[INFO] testing tajhlande/cmdify against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftajhlande%2Fcmdify" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-6-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/tajhlande/cmdify
[INFO] finished tweaking git repo https://github.com/tajhlande/cmdify
[INFO] tweaked toml for git repo https://github.com/tajhlande/cmdify written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tajhlande/cmdify on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tajhlande/cmdify already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0ffad92a190acdbfa266c46c65698d4abecebf7a8345f624da90afd49a977a11
[INFO] running `Command { std: "docker" "start" "-a" "0ffad92a190acdbfa266c46c65698d4abecebf7a8345f624da90afd49a977a11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ffad92a190acdbfa266c46c65698d4abecebf7a8345f624da90afd49a977a11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ffad92a190acdbfa266c46c65698d4abecebf7a8345f624da90afd49a977a11", kill_on_drop: false }`
[INFO] [stdout] 0ffad92a190acdbfa266c46c65698d4abecebf7a8345f624da90afd49a977a11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] df2d4c9d253a20402eea33835edf6bc3007257e8d8d6593e05529bf8632b9445
[INFO] running `Command { std: "docker" "start" "-a" "df2d4c9d253a20402eea33835edf6bc3007257e8d8d6593e05529bf8632b9445", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling endian-type v0.2.0
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling radix_trie v0.3.0
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling aws-lc-sys v0.39.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rustyline v18.0.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling cmdify v0.12.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "df2d4c9d253a20402eea33835edf6bc3007257e8d8d6593e05529bf8632b9445", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df2d4c9d253a20402eea33835edf6bc3007257e8d8d6593e05529bf8632b9445", kill_on_drop: false }`
[INFO] [stdout] df2d4c9d253a20402eea33835edf6bc3007257e8d8d6593e05529bf8632b9445
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4c2ec157d4db173184ceb101accb037e539cdbb63340b4587f26eed9b6dcbda7
[INFO] running `Command { std: "docker" "start" "-a" "4c2ec157d4db173184ceb101accb037e539cdbb63340b4587f26eed9b6dcbda7", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rustyline v18.0.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling cmdify v0.12.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 42.62s
[INFO] running `Command { std: "docker" "inspect" "4c2ec157d4db173184ceb101accb037e539cdbb63340b4587f26eed9b6dcbda7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c2ec157d4db173184ceb101accb037e539cdbb63340b4587f26eed9b6dcbda7", kill_on_drop: false }`
[INFO] [stdout] 4c2ec157d4db173184ceb101accb037e539cdbb63340b4587f26eed9b6dcbda7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5313374e748353ec2a7c20a996d7f10f50f24722def42a825b1e829467baf761
[INFO] running `Command { std: "docker" "start" "-a" "5313374e748353ec2a7c20a996d7f10f50f24722def42a825b1e829467baf761", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cmdify-78c41ac5f8551832)
[INFO] [stdout] 
[INFO] [stdout] running 371 tests
[INFO] [stderr] sh: 1: nonexistent_command_xyz_123: not found
[INFO] [stdout] test app::tests::default_tool_level_source_added ... ok
[INFO] [stdout] test app::tests::no_overrides_leaves_config_unchanged ... ok
[INFO] [stdout] test app::tests::execute_command_success ... ok
[INFO] [stdout] test app::tests::execute_command_nonexistent_command_fails ... ok
[INFO] [stdout] test app::tests::execute_command_failure ... ok
[INFO] [stdout] test app::tests::overrides_apply_blind ... ok
[INFO] [stdout] test app::tests::overrides_apply_quiet ... ok
[INFO] [stdout] test app::tests::overrides_apply_tool_level ... ok
[INFO] [stdout] test app::tests::safety_gate_allows_unsafe_mode ... ok
[INFO] [stdout] test app::tests::tool_level_clamped_to_3 ... ok
[INFO] [stdout] test app::tests::safety_gate_blocks_dangerous_command ... ok
[INFO] [stdout] hello
[INFO] [stdout] test app::tests::safety_gate_allows_safe_command ... ok
[INFO] [stdout] test cli::tests::debug_default_zero ... ok
[INFO] [stdout] test app::tests::overrides_apply_yolo ... ok
[INFO] [stdout] test app::tests::execute_command_output ... ok
[INFO] [stdout] test cli::tests::help_includes_setup ... ok
[INFO] [stdout] test cli::tests::help_is_generated ... ok
[INFO] [stdout] test app::tests::overrides_apply_debug ... ok
[INFO] [stdout] test app::tests::overrides_apply_no_tools ... ok
[INFO] [stdout] test cli::tests::config_default_none ... ok
[INFO] [stdout] test app::tests::yolo_or_with_existing ... ok
[INFO] [stdout] test app::tests::tool_level_cli_overrides_env_level ... ok
[INFO] [stdout] test app::tests::safety_gate_blocks_command_substitution ... ok
[INFO] [stdout] test app::tests::safety_gate_blocks_pipe_to_shell ... ok
[INFO] [stdout] test cli::tests::parse_debug_verbose ... ok
[INFO] [stdout] test cli::tests::interactive_conflicts_with_setup ... ok
[INFO] [stdout] test cli::tests::interactive_default_false ... ok
[INFO] [stdout] test cli::tests::list_tools_default_false ... ok
[INFO] [stdout] test cli::tests::parse_blind_flag ... ok
[INFO] [stdout] test cli::tests::help_includes_interactive ... ok
[INFO] [stdout] test cli::tests::no_args_returns_no_prompt ... ok
[INFO] [stdout] test cli::tests::parse_config_long ... ok
[INFO] [stdout] test cli::tests::parse_config_short ... ok
[INFO] [stdout] test cli::tests::parse_debug_long ... ok
[INFO] [stdout] test cli::tests::parse_debug_short ... ok
[INFO] [stdout] test app::tests::safety_gate_allows_echo_of_dangerous ... ok
[INFO] [stdout] test cli::tests::parse_list_tools ... ok
[INFO] [stdout] test cli::tests::parse_basic_prompt ... ok
[INFO] [stdout] test cli::tests::interactive_conflicts_with_prompt ... ok
[INFO] [stdout] test cli::tests::parse_interactive_long ... ok
[INFO] [stdout] test cli::tests::parse_unsafe_long ... ok
[INFO] [stdout] test cli::tests::parse_no_tools_flag ... ok
[INFO] [stdout] test cli::tests::parse_quiet_flag ... ok
[INFO] [stdout] test cli::tests::parse_interactive_short ... ok
[INFO] [stdout] test cli::tests::parse_long_flags ... ok
[INFO] [stdout] test cli::tests::parse_spinner_short ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_2 ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_long ... ok
[INFO] [stdout] test cli::tests::parse_setup_long ... ok
[INFO] [stdout] test cli::tests::setup_default_false ... ok
[INFO] [stdout] test cli::tests::parse_spinner_long ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_short ... ok
[INFO] [stdout] test cli::tests::parse_unsafe_short ... ok
[INFO] [stdout] test config::tests::bool_flags_env_overrides_config ... ok
[INFO] [stdout] test cli::tests::parse_yolo_long_flag ... ok
[INFO] [stdout] test cli::tests::parse_yolo_flag ... ok
[INFO] [stdout] test config::tests::bool_flags_from_env ... ok
[INFO] [stdout] test cli::tests::tool_level_default_none ... ok
[INFO] [stdout] test cli::tests::spinner_default ... ok
[INFO] [stdout] test config::tests::cli_config_overrides_env_config ... ok
[INFO] [stdout] test config::tests::cmdify_config_env_not_found_errors ... ok
[INFO] [stdout] test config::tests::all_flags_from_config_file ... ok
[INFO] [stdout] test config::tests::debug_precedence_cli_max_with_env ... ok
[INFO] [stdout] test config::tests::debug_from_env_true_maps_to_level_1 ... ok
[INFO] [stdout] test config::tests::bool_flags_from_config_file ... ok
[INFO] [stdout] test config::tests::cmdify_config_env_var_used ... ok
[INFO] [stdout] test config::tests::completions_config_no_key ... ok
[INFO] [stdout] test config::tests::env_var_overrides_config_file ... ok
[INFO] [stdout] test config::tests::config_file_provides_defaults ... ok
[INFO] [stdout] test config::tests::debug_from_env ... ok
[INFO] [stdout] test config::tests::debug_from_config_file ... ok
[INFO] [stdout] test config::tests::debug_config_file_maps_true_to_level_1_source ... ok
[INFO] [stdout] test config::tests::invalid_spinner_env_uses_default ... ok
[INFO] [stdout] test config::tests::invalid_bool_env_uses_default ... ok
[INFO] [stdout] test config::tests::debug_from_env_false ... ok
[INFO] [stdout] test config::tests::debug_from_env_level_2 ... ok
[INFO] [stdout] test config::tests::debug_default_false ... ok
[INFO] [stdout] test config::tests::bool_flags_false_from_env ... ok
[INFO] [stdout] test config::tests::explicit_config_path_not_found_errors ... ok
[INFO] [stdout] test config::tests::explicit_config_path_overrides_xdg ... ok
[INFO] [stdout] test config::tests::defaults_all_false ... ok
[INFO] [stdout] test config::tests::explicit_config_path_used ... ok
[INFO] [stdout] test config::tests::home_fallback_when_no_xdg ... ok
[INFO] [stdout] test config::tests::debug_source_omitted_when_level_0 ... ok
[INFO] [stdout] test config::tests::sources_track_file_origin ... ok
[INFO] [stdout] test config::tests::max_tokens_override ... ok
[INFO] [stdout] test config::tests::spinner_from_config_file ... ok
[INFO] [stdout] test config::tests::invalid_toml_errors ... ok
[INFO] [stdout] test config::tests::missing_config_file_graceful_fallback ... ok
[INFO] [stdout] test config::tests::missing_model_name ... ok
[INFO] [stdout] test config::tests::invalid_debug_env_uses_default ... ok
[INFO] [stdout] test config::tests::max_tokens_from_config_file ... ok
[INFO] [stdout] test config::tests::tool_level_default_is_1 ... ok
[INFO] [stdout] test config::tests::completions_config_full ... ok
[INFO] [stdout] test config::tests::sources_omit_defaults ... ok
[INFO] [stdout] test config::tests::sources_mask_api_key ... ok
[INFO] [stdout] test config::tests::debug_env_overrides_config_file ... ok
[INFO] [stdout] test config::tests::spinner_env_overrides_config ... ok
[INFO] [stdout] test config::tests::spinner_from_env ... ok
[INFO] [stdout] test debug::tests::debug_macro_single_prefix ... ok
[INFO] [stdout] test debug::tests::elapsed_ms_zero_before_init ... ok
[INFO] [stdout] test debug::tests::emit_json_disabled_is_silent ... ok
[INFO] [stdout] test debug::tests::emit_json_requires_level_2 ... ok
[INFO] [stdout] test debug::tests::emit_line_disabled_is_silent ... ok
[INFO] [stdout] test debug::tests::emit_json_silent_at_level_1 ... ok
[INFO] [stdout] test debug::tests::emit_line_enabled_gates_on_is_enabled ... ok
[INFO] [stdout] test debug::tests::format_line_contains_prefix ... ok
[INFO] [stdout] test debug::tests::format_line_with_zero_elapsed ... ok
[INFO] [stdout] test debug::tests::is_enabled_reflects_state ... ok
[INFO] [stdout] test debug::tests::level_returns_set_value ... ok
[INFO] [stdout] test config::tests::system_prompt_env_overrides_config_file ... ok
[INFO] [stdout] test history::tests::history_path_with_home_fallback ... ok
[INFO] [stdout] test history::tests::append_creates_file_and_directory ... ok
[INFO] [stdout] test config::tests::missing_provider_name ... ok
[INFO] [stdout] test history::tests::max_history_lines_is_10000 ... ok
[INFO] [stdout] test config::tests::tool_level_clamped_to_3 ... ok
[INFO] [stdout] test config::tests::tool_level_from_config_file ... ok
[INFO] [stdout] test config::tests::tool_level_from_env ... ok
[INFO] [stdout] test config::tests::missing_completions_base_url ... ok
[INFO] [stdout] test config::tests::tool_level_invalid_env_uses_default ... ok
[INFO] [stdout] test logger::tests::log_file_path_with_xdg_state_home ... ok
[INFO] [stdout] test logger::tests::logger_works_without_xdg_or_home ... ok
[INFO] [stdout] test debug::tests::format_json_line_multiline ... ok
[INFO] [stdout] test config::tests::xdg_takes_precedence_over_home ... ok
[INFO] [stdout] test history::tests::append_multiple_entries ... ok
[INFO] [stdout] test history::tests::history_path_no_xdg_no_home ... ok
[INFO] [stdout] test history::tests::history_path_with_xdg_cache_home ... ok
[INFO] [stdout] test config::tests::system_prompt_from_config_file ... ok
[INFO] [stdout] test prompt::tests::prompt_base_not_empty ... ok
[INFO] [stdout] test prompt::tests::prompt_safety_not_empty ... ok
[INFO] [stdout] test prompt::tests::prompt_tools_not_empty ... ok
[INFO] [stdout] test prompt::tests::os_version_included ... ok
[INFO] [stdout] test history::tests::xdg_takes_precedence_over_home ... ok
[INFO] [stdout] test logger::tests::log_file_path_with_xdg_override ... ok
[INFO] [stdout] test history::tests::trim_not_triggered_below_limit ... ok
[INFO] [stdout] test config::tests::sources_track_env_overrides ... ok
[INFO] [stdout] test logger::tests::multiple_entries_append ... ok
[INFO] [stdout] test provider::anthropic::tests::create_without_key_errors ... ok
[INFO] [stdout] test prompt::tests::prompt_unsafe_not_empty ... ok
[INFO] [stdout] test prompt::tests::custom_override_replaces_all_pieces ... ok
[INFO] [stdout] test prompt::tests::default_assembly_includes_base_tools_safety_shell ... ok
[INFO] [stdout] test config::tests::unknown_provider ... ok
[INFO] [stdout] test logger::tests::new_logger_creates_file ... ok
[INFO] [stdout] test prompt::tests::no_tools_excludes_tools_piece ... ok
[INFO] [stdout] test prompt::tests::no_tools_unsafe_includes_base_unsafe_shell_only ... ok
[INFO] [stdout] test app::tests::debug_level_maxed_with_existing ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_text_only ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_max_tokens_stop_reason ... ok
[INFO] [stdout] test provider::anthropic::tests::format_tool_result ... ok
[INFO] [stdout] test provider::anthropic::tests::format_tools_uses_input_schema ... ok
[INFO] [stdout] test provider::anthropic::tests::create_with_key ... ok
[INFO] [stdout] test provider::completions::tests::format_assistant_message_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_with_tool_calls ... ok
[INFO] [stdout] test provider::anthropic::tests::format_messages_extracts_system ... ok
[INFO] [stdout] test provider::completions::tests::format_system_message ... ok
[INFO] [stdout] test provider::completions::tests::format_tools_empty ... ok
[INFO] [stdout] test provider::completions::tests::format_tools_includes_function_schema ... ok
[INFO] [stdout] test provider::completions::tests::format_tool_result_message ... ok
[INFO] [stdout] test provider::completions::tests::format_user_message ... ok
[INFO] [stdout] test provider::completions::tests::parse_length_finish_reason ... ok
[INFO] [stdout] test provider::completions::tests::parse_no_choices ... ok
[INFO] [stdout] test provider::completions::tests::parse_stop_response ... ok
[INFO] [stdout] test provider::completions::tests::parse_tool_call_response ... ok
[INFO] [stdout] test provider::completions::tests::parse_unknown_finish_reason ... ok
[INFO] [stdout] test provider::anthropic::tests::format_messages_no_system ... ok
[INFO] [stdout] test provider::completions::tests::format_assistant_message_with_tool_calls ... ok
[INFO] [stdout] test provider::completions::tests::completions_provider_new_optional_key ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_unknown_stop_reason ... ok
[INFO] [stdout] test provider::gemini::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::completions::tests::completions_provider_new ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_mixed_text_and_tool_use ... ok
[INFO] [stdout] test provider::anthropic::tests::supports_tools_true ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_text_response ... ok
[INFO] [stdout] test provider::completions::tests::with_options_sets_provider_name ... ok
[INFO] [stdout] test provider::gemini::tests::build_url_trims_base_slash ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_tool_use_response ... ok
[INFO] [stdout] test provider::gemini::tests::create_with_key ... ok
[INFO] [stdout] test provider::completions::tests::with_options_overrides_base_url_from_config ... ok
[INFO] [stdout] test provider::gemini::tests::build_url_includes_model_and_key ... ok
[INFO] [stdout] test provider::gemini::tests::format_tools_uses_function_declarations ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_text_only ... ok
[INFO] [stdout] test provider::gemini::tests::format_messages_extracts_system ... ok
[INFO] [stdout] test provider::http::tests::user_agent_contains_cmdify ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_with_tool_calls ... ok
[INFO] [stdout] test provider::huggingface::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::parse_stop_ambiguity_resolved_for_tool_calls ... ok
[INFO] [stdout] test provider::gemini::tests::format_messages_no_system ... ok
[INFO] [stdout] test provider::kimi::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::minimax::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::parse_function_call_response ... ok
[INFO] [stdout] test provider::mistral::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::parse_no_candidates ... ok
[INFO] [stdout] test provider::kimi::tests::create_with_key ... ok
[INFO] [stdout] test provider::gemini::tests::parse_multiple_function_calls ... ok
[INFO] [stdout] test provider::openai::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::format_tool_result ... ok
[INFO] [stdout] test provider::openrouter::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::minimax::tests::create_with_key ... ok
[INFO] [stdout] test provider::qwen::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::responses::tests::format_assistant_message_with_tool_calls ... ok
[INFO] [stdout] test provider::responses::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::responses::tests::format_system_message ... ok
[INFO] [stdout] test provider::responses::tests::format_tool_result ... ok
[INFO] [stdout] test provider::responses::tests::format_tools_empty ... ok
[INFO] [stdout] test provider::responses::tests::format_tools_flat ... ok
[INFO] [stdout] test provider::responses::tests::format_user_message ... ok
[INFO] [stdout] test provider::responses::tests::parse_empty_output ... ok
[INFO] [stdout] test provider::responses::tests::parse_function_call_response ... ok
[INFO] [stdout] test provider::responses::tests::parse_incomplete_status ... ok
[INFO] [stdout] test provider::responses::tests::parse_mixed_text_and_function_call ... ok
[INFO] [stdout] test provider::responses::tests::parse_no_output_key ... ok
[INFO] [stdout] test provider::responses::tests::parse_skips_reasoning_items ... ok
[INFO] [stdout] test provider::responses::tests::parse_text_response ... ok
[INFO] [stdout] test provider::gemini::tests::parse_text_response ... ok
[INFO] [stdout] test provider::gemini::tests::supports_tools_true ... ok
[INFO] [stdout] test provider::mistral::tests::create_with_key ... ok
[INFO] [stdout] test provider::gemini::tests::parse_stop_ambiguity_resolved_for_text ... ok
[INFO] [stdout] test provider::ollama::tests::create_ollama_provider ... ok
[INFO] [stdout] test provider::zai::tests::create_without_key_errors ... ok
[INFO] [stdout] test safety::tests::append_redirect_allowed ... ok
[INFO] [stdout] test safety::tests::block_device_target_blocked ... ok
[INFO] [stdout] test safety::tests::blocked_backtick_substitution ... ok
[INFO] [stdout] test safety::tests::blocked_command_substitution ... ok
[INFO] [stdout] test provider::openai::tests::create_with_key ... ok
[INFO] [stdout] test safety::tests::blocked_dd ... ok
[INFO] [stdout] test safety::tests::blocked_crontab_remove ... ok
[INFO] [stdout] test provider::huggingface::tests::create_with_key ... ok
[INFO] [stdout] test safety::tests::blocked_eval ... ok
[INFO] [stdout] test safety::tests::blocked_exec_with_substitution ... ok
[INFO] [stdout] test safety::tests::blocked_fdisk ... ok
[INFO] [stdout] test safety::tests::blocked_fork_bomb ... ok
[INFO] [stdout] test safety::tests::blocked_mkfs ... ok
[INFO] [stdout] test safety::tests::blocked_modprobe ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_bash ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_sh ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_zsh ... ok
[INFO] [stdout] test safety::tests::blocked_reboot ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_append ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_nvme ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_sda ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_with_command ... ok
[INFO] [stdout] test safety::tests::blocked_shutdown ... ok
[INFO] [stdout] test safety::tests::blocked_variable_expansion_home ... ok
[INFO] [stdout] test safety::tests::blocked_mv_to_dev_null ... ok
[INFO] [stdout] test safety::tests::chained_command_blocked ... ok
[INFO] [stdout] test safety::tests::chmod_777_no_recursive_safe ... ok
[INFO] [stdout] test safety::tests::chmod_r_777_blocked ... ok
[INFO] [stdout] test safety::tests::cp_to_etc_safe ... ok
[INFO] [stdout] test safety::tests::crontab_edit_allowed ... ok
[INFO] [stdout] test safety::tests::crontab_list_allowed ... ok
[INFO] [stdout] test safety::tests::dd_already_blocked_by_pass2 ... ok
[INFO] [stdout] test safety::tests::dev_nvme_target_blocked ... ok
[INFO] [stdout] test safety::tests::echo_string_safe ... ok
[INFO] [stdout] test safety::tests::empty_command_safe ... ok
[INFO] [stdout] test safety::tests::blocked_leading_redirect_truncation ... ok
[INFO] [stdout] test safety::tests::cat_safe ... ok
[INFO] [stdout] test safety::tests::find_delete_broad_root_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_home_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_broad_etc_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_chmod_777_broad_blocked ... ok
[INFO] [stdout] test safety::tests::find_exec_grep_broad_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_no_dangerous_flags_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_rf_broad_blocked ... ok
[INFO] [stdout] test provider::openrouter::tests::create_with_key ... ok
[INFO] [stdout] test safety::tests::find_execdir_rm_rf_broad_blocked ... ok
[INFO] [stdout] test safety::tests::find_maxdepth_delete_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_rf_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::kill_9_minus1_blocked ... ok
[INFO] [stdout] test safety::tests::find_name_only_allowed ... ok
[INFO] [stdout] test safety::tests::kill_normal_safe ... ok
[INFO] [stdout] test safety::tests::mv_normal_allowed ... ok
[INFO] [stdout] test safety::tests::pipe_to_cat_safe ... ok
[INFO] [stdout] test safety::tests::pipe_to_sh_in_chain ... ok
[INFO] [stdout] test safety::tests::quoted_path_with_dangerous_flags ... ok
[INFO] [stdout] test safety::tests::mkfs_already_blocked_by_pass2 ... ok
[INFO] [stdout] test safety::tests::rm_dash_r_dash_f_allowed ... ok
[INFO] [stdout] test safety::tests::rm_fr_blocked ... ok
[INFO] [stdout] test safety::tests::rm_dash_r_force_allowed ... ok
[INFO] [stdout] test safety::tests::rm_i_safe ... ok
[INFO] [stdout] test safety::tests::rm_r_safe ... ok
[INFO] [stdout] test safety::tests::rm_rf_broad_target_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_combined_flag_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_etc_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_etc_passwd_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_home_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::rm_rf_tmp_stale_allowed ... ok
[INFO] [stdout] test safety::tests::rm_rf_variable_dir_allowed ... ok
[INFO] [stdout] test safety::tests::safe_command_echo ... ok
[INFO] [stdout] test provider::ollama::tests::create_ollama_custom_url ... ok
[INFO] [stdout] test safety::tests::safe_command_git ... ok
[INFO] [stdout] test safety::tests::safe_command_pipe_grep ... ok
[INFO] [stdout] test safety::tests::safe_exec_plain ... ok
[INFO] [stdout] test safety::tests::semicolon_chain_blocked ... ok
[INFO] [stdout] test safety::tests::split_chained_empty_parts ... ok
[INFO] [stdout] test safety::tests::split_chained_pipe ... ok
[INFO] [stdout] test safety::tests::split_chained_quoted ... ok
[INFO] [stdout] test safety::tests::split_chained_semicolon ... ok
[INFO] [stdout] test safety::tests::split_chained_simple ... ok
[INFO] [stdout] test safety::tests::split_chained_triple ... ok
[INFO] [stdout] test safety::tests::subshell_in_middle_blocked ... ok
[INFO] [stdout] test safety::tests::sudo_rm_rf_root_blocked ... ok
[INFO] [stdout] test safety::tests::rm_no_preserve_root_blocked ... ok
[INFO] [stdout] test safety::tests::wildcard_in_path_safe ... ok
[INFO] [stdout] test safety::tests::wildcard_standalone_blocked ... ok
[INFO] [stdout] test spinner::tests::pause_and_resume ... ok
[INFO] [stdout] test spinner::tests::pause_handle_cloned_independently ... ok
[INFO] [stdout] test spinner::tests::pause_handle_defaults_not_paused ... ok
[INFO] [stdout] test tools::ask_user::tests::format_display_output ... ok
[INFO] [stdout] test tools::ask_user::tests::format_display_single_choice ... ok
[INFO] [stdout] test safety::tests::safe_command_ls ... ok
[INFO] [stdout] test tools::ask_user::tests::missing_choices_argument ... ok
[INFO] [stdout] test tools::ask_user::tests::missing_question_argument ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_empty_array ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_choices_field ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_key ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_label ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_valid ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_whitespace_key_trimmed ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_empty_key ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_empty_returns_sentinel ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_invalid_returns_note ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_single_key ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_valid_lowercase ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_valid_uppercase ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_whitespace_only_returns_sentinel ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_with_trailing_whitespace ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_definition_choices_schema ... ok
[INFO] [stdout] test provider::qwen::tests::create_with_key ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_definition_has_required_fields ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_name ... ok
[INFO] [stdout] test tools::find_command::tests::command_not_string_errors ... ok
[INFO] [stdout] test tools::find_command::tests::command_with_path ... ok
[INFO] [stdout] test provider::responses::tests::responses_provider_new ... ok
[INFO] [stdout] test tools::find_command::tests::find_existing_command_ls ... ok
[INFO] [stdout] test provider::responses::tests::with_options_overrides_base_url_from_config ... ok
[INFO] [stdout] test tools::find_command::tests::missing_command_argument ... ok
[INFO] [stdout] test tools::find_command::tests::find_existing_command_sh ... ok
[INFO] [stdout] test tools::find_command::tests::tool_definition_has_required_fields ... ok
[INFO] [stdout] test tools::find_command::tests::tool_name ... ok
[INFO] [stdout] test tools::tests::ask_user_excluded_when_quiet ... ok
[INFO] [stdout] test tools::tests::execute_unknown_tool_errors ... ok
[INFO] [stdout] test tools::tests::find_command_excluded_when_blind ... ok
[INFO] [stdout] test tools::find_command::tests::timeout_returns_error_message ... ok
[INFO] [stdout] test tools::tests::level_2_plus_blind ... ok
[INFO] [stdout] test tools::tests::level_2_same_as_level_1 ... ok
[INFO] [stdout] test tools::tests::level_3_plus_no_tools ... ok
[INFO] [stdout] test tools::tests::execute_find_command_directly ... ok
[INFO] [stdout] test tools::find_command::tests::shell_injection_safety ... ok
[INFO] [stdout] test tools::tests::registry_all_flags_set ... ok
[INFO] [stdout] test tools::tests::registry_quiet_and_blind ... ok
[INFO] [stdout] test tools::tests::level_0_empty_registry ... ok
[INFO] [stdout] test tools::tests::registry_with_both_tools ... ok
[INFO] [stdout] test tools::tests::registry_with_no_tools_flag ... ok
[INFO] [stdout] test tools::tests::registry_with_quiet_flag ... ok
[INFO] [stdout] test tools::tests::registry_with_blind_flag ... ok
[INFO] [stdout] test tools::find_command::tests::find_nonexistent_command ... ok
[INFO] [stdout] test safety::tests::safe_command_find ... ok
[INFO] [stdout] test provider::responses::tests::responses_provider_new_optional_key ... ok
[INFO] [stdout] test safety::tests::mv_scoped_safe ... ok
[INFO] [stdout] test safety::tests::whitespace_only_safe ... ok
[INFO] [stdout] test provider::responses::tests::with_options_sets_provider_name ... ok
[INFO] [stdout] test provider::zai::tests::create_with_key ... ok
[INFO] [stdout] test history::tests::trim_trims_oldest_entries_at_limit ... ok
[INFO] [stdout] test prompt::tests::shell_detection_defaults_to_bash ... ok
[INFO] [stdout] test prompt::tests::shell_detection_no_tools_unsafe ... ok
[INFO] [stdout] test prompt::tests::shell_detection_zsh ... ok
[INFO] [stdout] test prompt::tests::unsafe_includes_unsafe_piece_excludes_safety ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 371 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.77s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cmdify-4e7521a7aae2c1f2)
[INFO] [stdout] 
[INFO] [stdout] running 392 tests
[INFO] [stderr] sh: 1: nonexistent_command_xyz_123: not found
[INFO] [stdout] test app::tests::debug_level_maxed_with_existing ... ok
[INFO] [stdout] test app::tests::default_tool_level_source_added ... ok
[INFO] [stdout] test app::tests::execute_command_nonexistent_command_fails ... ok
[INFO] [stdout] test app::tests::no_overrides_leaves_config_unchanged ... ok
[INFO] [stdout] test app::tests::overrides_apply_blind ... ok
[INFO] [stdout] test app::tests::overrides_apply_no_tools ... ok
[INFO] [stdout] test app::tests::overrides_apply_quiet ... ok
[INFO] [stdout] test app::tests::overrides_apply_tool_level ... ok
[INFO] [stdout] test app::tests::overrides_apply_yolo ... ok
[INFO] [stdout] test app::tests::safety_gate_allows_echo_of_dangerous ... ok
[INFO] [stdout] test app::tests::safety_gate_allows_safe_command ... ok
[INFO] [stdout] test app::tests::safety_gate_allows_unsafe_mode ... ok
[INFO] [stdout] test app::tests::safety_gate_blocks_command_substitution ... ok
[INFO] [stdout] test app::tests::safety_gate_blocks_dangerous_command ... ok
[INFO] [stdout] hello
[INFO] [stdout] test app::tests::safety_gate_blocks_pipe_to_shell ... ok
[INFO] [stdout] test app::tests::tool_level_cli_overrides_env_level ... ok
[INFO] [stdout] test app::tests::tool_level_clamped_to_3 ... ok
[INFO] [stdout] test app::tests::yolo_or_with_existing ... ok
[INFO] [stdout] test app::tests::execute_command_failure ... ok
[INFO] [stdout] test cli::tests::config_default_none ... ok
[INFO] [stdout] test app::tests::execute_command_success ... ok
[INFO] [stdout] test cli::tests::debug_default_zero ... ok
[INFO] [stdout] test cli::tests::interactive_conflicts_with_setup ... ok
[INFO] [stdout] test cli::tests::interactive_conflicts_with_prompt ... ok
[INFO] [stdout] test cli::tests::parse_blind_flag ... ok
[INFO] [stdout] test cli::tests::help_is_generated ... ok
[INFO] [stdout] test app::tests::execute_command_output ... ok
[INFO] [stdout] test cli::tests::help_includes_interactive ... ok
[INFO] [stdout] test cli::tests::no_args_returns_no_prompt ... ok
[INFO] [stdout] test cli::tests::parse_basic_prompt ... ok
[INFO] [stdout] test cli::tests::help_includes_setup ... ok
[INFO] [stdout] test app::tests::overrides_apply_debug ... ok
[INFO] [stdout] test cli::tests::parse_config_long ... ok
[INFO] [stdout] test cli::tests::interactive_default_false ... ok
[INFO] [stdout] test cli::tests::parse_config_short ... ok
[INFO] [stdout] test cli::tests::list_tools_default_false ... ok
[INFO] [stdout] test cli::tests::parse_debug_long ... ok
[INFO] [stdout] test cli::tests::parse_debug_short ... ok
[INFO] [stdout] test cli::tests::parse_debug_verbose ... ok
[INFO] [stdout] test cli::tests::parse_interactive_short ... ok
[INFO] [stdout] test cli::tests::parse_long_flags ... ok
[INFO] [stdout] test cli::tests::parse_list_tools ... ok
[INFO] [stdout] test cli::tests::parse_interactive_long ... ok
[INFO] [stdout] test cli::tests::parse_quiet_flag ... ok
[INFO] [stdout] test cli::tests::parse_setup_long ... ok
[INFO] [stdout] test cli::tests::parse_no_tools_flag ... ok
[INFO] [stdout] test cli::tests::parse_spinner_short ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_2 ... ok
[INFO] [stdout] test cli::tests::parse_spinner_long ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_long ... ok
[INFO] [stdout] test cli::tests::parse_unsafe_long ... ok
[INFO] [stdout] test cli::tests::parse_yolo_flag ... ok
[INFO] [stdout] test cli::tests::parse_tool_level_short ... ok
[INFO] [stdout] test cli::tests::setup_default_false ... ok
[INFO] [stdout] test config::tests::all_flags_from_config_file ... ok
[INFO] [stdout] test cli::tests::parse_unsafe_short ... ok
[INFO] [stdout] test config::tests::bool_flags_false_from_env ... ok
[INFO] [stdout] test config::tests::bool_flags_env_overrides_config ... ok
[INFO] [stdout] test cli::tests::tool_level_default_none ... ok
[INFO] [stdout] test cli::tests::parse_yolo_long_flag ... ok
[INFO] [stdout] test cli::tests::spinner_default ... ok
[INFO] [stdout] test config::tests::bool_flags_from_config_file ... ok
[INFO] [stdout] test config::tests::cmdify_config_env_not_found_errors ... ok
[INFO] [stdout] test config::tests::bool_flags_from_env ... ok
[INFO] [stdout] test config::tests::cli_config_overrides_env_config ... ok
[INFO] [stdout] test config::tests::cmdify_config_env_var_used ... ok
[INFO] [stdout] test config::tests::completions_config_full ... ok
[INFO] [stdout] test config::tests::completions_config_no_key ... ok
[INFO] [stdout] test config::tests::debug_precedence_cli_max_with_env ... ok
[INFO] [stdout] test config::tests::debug_config_file_maps_true_to_level_1_source ... ok
[INFO] [stdout] test config::tests::debug_default_false ... ok
[INFO] [stdout] test config::tests::config_file_provides_defaults ... ok
[INFO] [stdout] test config::tests::debug_env_overrides_config_file ... ok
[INFO] [stdout] test config::tests::debug_from_config_file ... ok
[INFO] [stdout] test config::tests::debug_from_env ... ok
[INFO] [stdout] test config::tests::debug_from_env_level_2 ... ok
[INFO] [stdout] test config::tests::debug_from_env_false ... ok
[INFO] [stdout] test config::tests::max_tokens_from_config_file ... ok
[INFO] [stdout] test config::tests::max_tokens_override ... ok
[INFO] [stdout] test config::tests::defaults_all_false ... ok
[INFO] [stdout] test config::tests::explicit_config_path_not_found_errors ... ok
[INFO] [stdout] test config::tests::env_var_overrides_config_file ... ok
[INFO] [stdout] test config::tests::explicit_config_path_overrides_xdg ... ok
[INFO] [stdout] test config::tests::explicit_config_path_used ... ok
[INFO] [stdout] test config::tests::home_fallback_when_no_xdg ... ok
[INFO] [stdout] test config::tests::invalid_bool_env_uses_default ... ok
[INFO] [stdout] test config::tests::invalid_spinner_env_uses_default ... ok
[INFO] [stdout] test config::tests::invalid_debug_env_uses_default ... ok
[INFO] [stdout] test config::tests::invalid_toml_errors ... ok
[INFO] [stdout] test config::tests::missing_completions_base_url ... ok
[INFO] [stdout] test config::tests::missing_config_file_graceful_fallback ... ok
[INFO] [stdout] test config::tests::debug_from_env_true_maps_to_level_1 ... ok
[INFO] [stdout] test config::tests::missing_provider_name ... ok
[INFO] [stdout] test config::tests::missing_model_name ... ok
[INFO] [stdout] test config::tests::sources_mask_api_key ... ok
[INFO] [stdout] test config::tests::tool_level_from_env ... ok
[INFO] [stdout] test config::tests::sources_omit_defaults ... ok
[INFO] [stdout] test debug::tests::debug_macro_single_prefix ... ok
[INFO] [stdout] test debug::tests::elapsed_ms_zero_before_init ... ok
[INFO] [stdout] test debug::tests::emit_json_requires_level_2 ... ok
[INFO] [stdout] test debug::tests::emit_json_disabled_is_silent ... ok
[INFO] [stdout] test debug::tests::emit_line_disabled_is_silent ... ok
[INFO] [stdout] test config::tests::sources_track_env_overrides ... ok
[INFO] [stdout] test debug::tests::emit_json_silent_at_level_1 ... ok
[INFO] [stdout] test debug::tests::emit_line_enabled_gates_on_is_enabled ... ok
[INFO] [stdout] test config::tests::debug_source_omitted_when_level_0 ... ok
[INFO] [stdout] test debug::tests::format_json_line_multiline ... ok
[INFO] [stdout] test debug::tests::format_line_contains_prefix ... ok
[INFO] [stdout] test config::tests::spinner_from_config_file ... ok
[INFO] [stdout] test config::tests::spinner_env_overrides_config ... ok
[INFO] [stdout] test config::tests::spinner_from_env ... ok
[INFO] [stdout] test debug::tests::format_line_with_zero_elapsed ... ok
[INFO] [stdout] test debug::tests::is_enabled_reflects_state ... ok
[INFO] [stdout] test debug::tests::level_returns_set_value ... ok
[INFO] [stdout] test history::tests::max_history_lines_is_10000 ... ok
[INFO] [stdout] test config::tests::system_prompt_env_overrides_config_file ... ok
[INFO] [stdout] test config::tests::tool_level_default_is_1 ... ok
[INFO] [stdout] test config::tests::system_prompt_from_config_file ... ok
[INFO] [stdout] test config::tests::tool_level_from_config_file ... ok
[INFO] [stdout] test config::tests::xdg_takes_precedence_over_home ... ok
[INFO] [stdout] test config::tests::unknown_provider ... ok
[INFO] [stdout] test config::tests::tool_level_invalid_env_uses_default ... ok
[INFO] [stdout] test config::tests::sources_track_file_origin ... ok
[INFO] [stdout] test config::tests::tool_level_clamped_to_3 ... ok
[INFO] [stdout] test history::tests::history_path_no_xdg_no_home ... ok
[INFO] [stdout] test history::tests::history_path_with_home_fallback ... ok
[INFO] [stdout] test history::tests::history_path_with_xdg_cache_home ... ok
[INFO] [stdout] test prompt::tests::prompt_base_not_empty ... ok
[INFO] [stdout] test history::tests::append_multiple_entries ... ok
[INFO] [stdout] test prompt::tests::prompt_tools_not_empty ... ok
[INFO] [stdout] test prompt::tests::prompt_safety_not_empty ... ok
[INFO] [stdout] test prompt::tests::prompt_unsafe_not_empty ... ok
[INFO] [stdout] test prompt::tests::no_tools_excludes_tools_piece ... ok
[INFO] [stdout] test logger::tests::log_file_path_with_xdg_override ... ok
[INFO] [stdout] test logger::tests::log_file_path_with_xdg_state_home ... ok
[INFO] [stdout] test history::tests::xdg_takes_precedence_over_home ... ok
[INFO] [stdout] test provider::anthropic::tests::create_without_key_errors ... ok
[INFO] [stdout] test history::tests::trim_not_triggered_below_limit ... ok
[INFO] [stdout] test provider::anthropic::tests::create_with_key ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_text_only ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_with_tool_calls ... ok
[INFO] [stdout] test provider::anthropic::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::anthropic::tests::format_messages_extracts_system ... ok
[INFO] [stdout] test provider::anthropic::tests::format_tool_result ... ok
[INFO] [stdout] test provider::anthropic::tests::format_messages_no_system ... ok
[INFO] [stdout] test provider::anthropic::tests::format_tools_uses_input_schema ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_max_tokens_stop_reason ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_mixed_text_and_tool_use ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_tool_use_response ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_text_response ... ok
[INFO] [stdout] test provider::anthropic::tests::parse_unknown_stop_reason ... ok
[INFO] [stdout] test provider::anthropic::tests::supports_tools_true ... ok
[INFO] [stdout] test provider::completions::tests::format_assistant_message_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::completions::tests::format_assistant_message_with_tool_calls ... ok
[INFO] [stdout] test provider::completions::tests::format_system_message ... ok
[INFO] [stdout] test provider::completions::tests::format_tool_result_message ... ok
[INFO] [stdout] test provider::completions::tests::format_tools_empty ... ok
[INFO] [stdout] test provider::completions::tests::format_tools_includes_function_schema ... ok
[INFO] [stdout] test provider::completions::tests::format_user_message ... ok
[INFO] [stdout] test provider::completions::tests::parse_length_finish_reason ... ok
[INFO] [stdout] test provider::completions::tests::parse_no_choices ... ok
[INFO] [stdout] test provider::completions::tests::parse_stop_response ... ok
[INFO] [stdout] test provider::completions::tests::parse_tool_call_response ... ok
[INFO] [stdout] test provider::completions::tests::parse_unknown_finish_reason ... ok
[INFO] [stdout] test provider::completions::tests::completions_provider_new ... ok
[INFO] [stdout] test provider::completions::tests::completions_provider_new_optional_key ... ok
[INFO] [stdout] test provider::completions::tests::with_options_sets_provider_name ... ok
[INFO] [stdout] test provider::completions::tests::with_options_overrides_base_url_from_config ... ok
[INFO] [stdout] test provider::gemini::tests::build_url_includes_model_and_key ... ok
[INFO] [stdout] test provider::gemini::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::build_url_trims_base_slash ... ok
[INFO] [stdout] test provider::gemini::tests::create_with_key ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_text_only ... ok
[INFO] [stdout] test provider::gemini::tests::format_assistant_with_tool_calls ... ok
[INFO] [stdout] test provider::gemini::tests::format_messages_no_system ... ok
[INFO] [stdout] test provider::gemini::tests::format_messages_extracts_system ... ok
[INFO] [stdout] test provider::gemini::tests::format_tools_uses_function_declarations ... ok
[INFO] [stdout] test provider::gemini::tests::format_tool_result ... ok
[INFO] [stdout] test provider::gemini::tests::parse_function_call_response ... ok
[INFO] [stdout] test provider::gemini::tests::parse_multiple_function_calls ... ok
[INFO] [stdout] test provider::gemini::tests::parse_no_candidates ... ok
[INFO] [stdout] test provider::gemini::tests::parse_stop_ambiguity_resolved_for_text ... ok
[INFO] [stdout] test provider::gemini::tests::parse_stop_ambiguity_resolved_for_tool_calls ... ok
[INFO] [stdout] test provider::http::tests::user_agent_contains_cmdify ... ok
[INFO] [stdout] test provider::gemini::tests::parse_text_response ... ok
[INFO] [stdout] test provider::huggingface::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::gemini::tests::supports_tools_true ... ok
[INFO] [stdout] test provider::kimi::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::minimax::tests::create_with_key ... ok
[INFO] [stdout] test provider::minimax::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::huggingface::tests::create_with_key ... ok
[INFO] [stdout] test provider::mistral::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::kimi::tests::create_with_key ... ok
[INFO] [stdout] test provider::mistral::tests::create_with_key ... ok
[INFO] [stdout] test provider::ollama::tests::create_ollama_provider ... ok
[INFO] [stdout] test provider::ollama::tests::create_ollama_custom_url ... ok
[INFO] [stdout] test provider::openai::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::openrouter::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::openai::tests::create_with_key ... ok
[INFO] [stdout] test provider::qwen::tests::create_without_key_errors ... ok
[INFO] [stdout] test provider::responses::tests::format_assistant_message_with_tool_calls ... ok
[INFO] [stdout] test provider::responses::tests::format_assistant_with_content_and_tool_calls ... ok
[INFO] [stdout] test provider::responses::tests::format_system_message ... ok
[INFO] [stdout] test provider::responses::tests::format_tool_result ... ok
[INFO] [stdout] test provider::responses::tests::format_tools_empty ... ok
[INFO] [stdout] test provider::responses::tests::format_tools_flat ... ok
[INFO] [stdout] test provider::responses::tests::format_user_message ... ok
[INFO] [stdout] test provider::responses::tests::parse_empty_output ... ok
[INFO] [stdout] test provider::responses::tests::parse_function_call_response ... ok
[INFO] [stdout] test provider::responses::tests::parse_incomplete_status ... ok
[INFO] [stdout] test provider::responses::tests::parse_mixed_text_and_function_call ... ok
[INFO] [stdout] test provider::responses::tests::parse_no_output_key ... ok
[INFO] [stdout] test provider::responses::tests::parse_skips_reasoning_items ... ok
[INFO] [stdout] test provider::responses::tests::parse_text_response ... ok
[INFO] [stdout] test provider::openrouter::tests::create_with_key ... ok
[INFO] [stdout] test provider::qwen::tests::create_with_key ... ok
[INFO] [stdout] test provider::responses::tests::responses_provider_new ... ok
[INFO] [stdout] test provider::responses::tests::responses_provider_new_optional_key ... ok
[INFO] [stdout] test provider::responses::tests::with_options_overrides_base_url_from_config ... ok
[INFO] [stdout] test provider::zai::tests::create_without_key_errors ... ok
[INFO] [stdout] test safety::tests::append_redirect_allowed ... ok
[INFO] [stdout] test safety::tests::block_device_target_blocked ... ok
[INFO] [stdout] test safety::tests::blocked_backtick_substitution ... ok
[INFO] [stdout] test safety::tests::blocked_command_substitution ... ok
[INFO] [stdout] test safety::tests::blocked_crontab_remove ... ok
[INFO] [stdout] test safety::tests::blocked_dd ... ok
[INFO] [stdout] test safety::tests::blocked_eval ... ok
[INFO] [stdout] test safety::tests::blocked_exec_with_substitution ... ok
[INFO] [stdout] test provider::responses::tests::with_options_sets_provider_name ... ok
[INFO] [stdout] test safety::tests::blocked_fdisk ... ok
[INFO] [stdout] test safety::tests::blocked_fork_bomb ... ok
[INFO] [stdout] test safety::tests::blocked_leading_redirect_truncation ... ok
[INFO] [stdout] test safety::tests::blocked_mkfs ... ok
[INFO] [stdout] test safety::tests::blocked_mv_to_dev_null ... ok
[INFO] [stdout] test safety::tests::blocked_modprobe ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_sh ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_bash ... ok
[INFO] [stdout] test safety::tests::blocked_pipe_to_zsh ... ok
[INFO] [stdout] test safety::tests::blocked_reboot ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_append ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_nvme ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_with_command ... ok
[INFO] [stdout] test safety::tests::blocked_shutdown ... ok
[INFO] [stdout] test safety::tests::blocked_variable_expansion_home ... ok
[INFO] [stdout] test safety::tests::blocked_redirect_to_block_device_sda ... ok
[INFO] [stdout] test safety::tests::chained_command_blocked ... ok
[INFO] [stdout] test safety::tests::chmod_777_no_recursive_safe ... ok
[INFO] [stdout] test safety::tests::chmod_r_777_blocked ... ok
[INFO] [stdout] test safety::tests::cp_to_etc_safe ... ok
[INFO] [stdout] test safety::tests::cat_safe ... ok
[INFO] [stdout] test safety::tests::crontab_edit_allowed ... ok
[INFO] [stdout] test safety::tests::dd_already_blocked_by_pass2 ... ok
[INFO] [stdout] test safety::tests::dev_nvme_target_blocked ... ok
[INFO] [stdout] test safety::tests::echo_string_safe ... ok
[INFO] [stdout] test safety::tests::crontab_list_allowed ... ok
[INFO] [stdout] test safety::tests::empty_command_safe ... ok
[INFO] [stdout] test safety::tests::find_delete_broad_etc_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_broad_root_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_home_blocked ... ok
[INFO] [stdout] test safety::tests::find_delete_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_grep_broad_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_no_dangerous_flags_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_rf_broad_blocked ... ok
[INFO] [stdout] test safety::tests::find_exec_rm_rf_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::find_exec_chmod_777_broad_blocked ... ok
[INFO] [stdout] test safety::tests::find_maxdepth_delete_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::find_name_only_allowed ... ok
[INFO] [stdout] test safety::tests::kill_9_minus1_blocked ... ok
[INFO] [stdout] test safety::tests::kill_normal_safe ... ok
[INFO] [stdout] test safety::tests::mkfs_already_blocked_by_pass2 ... ok
[INFO] [stdout] test safety::tests::mv_normal_allowed ... ok
[INFO] [stdout] test safety::tests::mv_scoped_safe ... ok
[INFO] [stdout] test safety::tests::find_execdir_rm_rf_broad_blocked ... ok
[INFO] [stdout] test safety::tests::pipe_to_cat_safe ... ok
[INFO] [stdout] test safety::tests::pipe_to_sh_in_chain ... ok
[INFO] [stdout] test safety::tests::quoted_path_with_dangerous_flags ... ok
[INFO] [stdout] test safety::tests::rm_dash_r_dash_f_allowed ... ok
[INFO] [stdout] test safety::tests::rm_dash_r_force_allowed ... ok
[INFO] [stdout] test safety::tests::rm_fr_blocked ... ok
[INFO] [stdout] test safety::tests::rm_i_safe ... ok
[INFO] [stdout] test safety::tests::rm_no_preserve_root_blocked ... ok
[INFO] [stdout] test safety::tests::rm_r_safe ... ok
[INFO] [stdout] test safety::tests::rm_rf_broad_target_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_combined_flag_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_etc_passwd_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_home_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_etc_blocked ... ok
[INFO] [stdout] test safety::tests::rm_rf_scoped_allowed ... ok
[INFO] [stdout] test safety::tests::rm_rf_tmp_stale_allowed ... ok
[INFO] [stdout] test safety::tests::rm_rf_variable_dir_allowed ... ok
[INFO] [stdout] test safety::tests::safe_command_echo ... ok
[INFO] [stdout] test safety::tests::safe_command_git ... ok
[INFO] [stdout] test safety::tests::safe_command_find ... ok
[INFO] [stdout] test safety::tests::safe_command_pipe_grep ... ok
[INFO] [stdout] test safety::tests::safe_command_ls ... ok
[INFO] [stdout] test safety::tests::safe_exec_plain ... ok
[INFO] [stdout] test safety::tests::semicolon_chain_blocked ... ok
[INFO] [stdout] test safety::tests::split_chained_pipe ... ok
[INFO] [stdout] test safety::tests::split_chained_empty_parts ... ok
[INFO] [stdout] test safety::tests::split_chained_quoted ... ok
[INFO] [stdout] test safety::tests::split_chained_semicolon ... ok
[INFO] [stdout] test safety::tests::split_chained_triple ... ok
[INFO] [stdout] test safety::tests::split_chained_simple ... ok
[INFO] [stdout] test safety::tests::sudo_rm_rf_root_blocked ... ok
[INFO] [stdout] test safety::tests::whitespace_only_safe ... ok
[INFO] [stdout] test safety::tests::wildcard_in_path_safe ... ok
[INFO] [stdout] test safety::tests::wildcard_standalone_blocked ... ok
[INFO] [stdout] test setup::tests::build_toml_content_no_provider_block_when_url_matches_default ... ok
[INFO] [stdout] test setup::tests::build_toml_content_with_custom_values ... ok
[INFO] [stdout] test setup::tests::build_toml_content_with_defaults ... ok
[INFO] [stdout] test setup::tests::completions_provider_has_no_default_url ... ok
[INFO] [stdout] test setup::tests::config_directory_created_if_missing ... ok
[INFO] [stdout] test setup::tests::config_file_written_and_valid_toml ... ok
[INFO] [stdout] test safety::tests::subshell_in_middle_blocked ... ok
[INFO] [stdout] test provider::zai::tests::create_with_key ... ok
[INFO] [stdout] test history::tests::trim_trims_oldest_entries_at_limit ... ok
[INFO] [stdout] test logger::tests::logger_works_without_xdg_or_home ... ok
[INFO] [stdout] test logger::tests::multiple_entries_append ... ok
[INFO] [stdout] test logger::tests::new_logger_creates_file ... ok
[INFO] [stdout] test prompt::tests::custom_override_replaces_all_pieces ... ok
[INFO] [stdout] test prompt::tests::no_tools_unsafe_includes_base_unsafe_shell_only ... ok
[INFO] [stdout] test setup::tests::load_existing_config_returns_none_when_missing ... ok
[INFO] [stdout] test setup::tests::ollama_provider_has_no_key ... ok
[INFO] [stdout] test setup::tests::providers_list_contains_all_13 ... ok
[INFO] [stdout] test setup::tests::resolve_provider_finds_known ... ok
[INFO] [stdout] test prompt::tests::os_version_included ... ok
[INFO] [stdout] test history::tests::append_creates_file_and_directory ... ok
[INFO] [stdout] test setup::tests::resolve_provider_unknown_is_none ... ok
[INFO] [stdout] test spinner::tests::pause_and_resume ... ok
[INFO] [stdout] test spinner::tests::pause_handle_cloned_independently ... ok
[INFO] [stdout] test setup::tests::run_interactive_writes_config_file ... ok
[INFO] [stdout] test tools::ask_user::tests::format_display_output ... ok
[INFO] [stdout] test tools::ask_user::tests::format_display_single_choice ... ok
[INFO] [stdout] test setup::tests::setup_inputs_overwrite_false_prevents_write ... ok
[INFO] [stdout] test spinner::tests::pause_handle_defaults_not_paused ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_empty_array ... ok
[INFO] [stdout] test tools::ask_user::tests::missing_choices_argument ... ok
[INFO] [stdout] test tools::ask_user::tests::missing_question_argument ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_empty_key ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_choices_field ... ok
[INFO] [stdout] test prompt::tests::shell_detection_defaults_to_bash ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_key ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_missing_label ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_whitespace_key_trimmed ... ok
[INFO] [stdout] test tools::ask_user::tests::parse_choices_valid ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_single_key ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_valid_lowercase ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_invalid_returns_note ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_empty_returns_sentinel ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_whitespace_only_returns_sentinel ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_with_trailing_whitespace ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_definition_choices_schema ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_definition_has_required_fields ... ok
[INFO] [stdout] test tools::ask_user::tests::tool_name ... ok
[INFO] [stdout] test tools::find_command::tests::command_not_string_errors ... ok
[INFO] [stdout] test tools::find_command::tests::command_with_path ... ok
[INFO] [stdout] test tools::find_command::tests::find_existing_command_sh ... ok
[INFO] [stdout] test tools::find_command::tests::find_existing_command_ls ... ok
[INFO] [stdout] test tools::find_command::tests::missing_command_argument ... ok
[INFO] [stdout] test prompt::tests::shell_detection_no_tools_unsafe ... ok
[INFO] [stdout] test tools::find_command::tests::tool_definition_has_required_fields ... ok
[INFO] [stdout] test tools::find_command::tests::tool_name ... ok
[INFO] [stdout] test tools::tests::ask_user_excluded_when_quiet ... ok
[INFO] [stdout] test tools::find_command::tests::timeout_returns_error_message ... ok
[INFO] [stdout] test tools::ask_user::tests::read_choice_valid_uppercase ... ok
[INFO] [stdout] test tools::tests::find_command_excluded_when_blind ... ok
[INFO] [stdout] test tools::tests::level_0_empty_registry ... ok
[INFO] [stdout] test tools::tests::level_2_plus_blind ... ok
[INFO] [stdout] test tools::tests::level_2_same_as_level_1 ... ok
[INFO] [stdout] test tools::tests::level_3_plus_no_tools ... ok
[INFO] [stdout] test tools::tests::registry_all_flags_set ... ok
[INFO] [stdout] test tools::tests::registry_quiet_and_blind ... ok
[INFO] [stdout] test tools::tests::registry_with_blind_flag ... ok
[INFO] [stdout] test tools::find_command::tests::find_nonexistent_command ... ok
[INFO] [stdout] test tools::tests::registry_with_both_tools ... ok
[INFO] [stdout] test tools::tests::registry_with_no_tools_flag ... ok
[INFO] [stdout] test tools::tests::registry_with_quiet_flag ... ok
[INFO] [stdout] test prompt::tests::default_assembly_includes_base_tools_safety_shell ... ok
[INFO] [stdout] test tools::tests::execute_unknown_tool_errors ... ok
[INFO] [stdout] test tools::tests::execute_find_command_directly ... ok
[INFO] [stdout] test tools::find_command::tests::shell_injection_safety ... ok
[INFO] [stdout] test prompt::tests::shell_detection_zsh ... ok
[INFO] [stdout] test prompt::tests::unsafe_includes_unsafe_piece_excludes_safety ... ok
[INFO] [stdout] test setup::tests::env_sufficient_completions_no_key_warns ... ok
[INFO] [stdout] test setup::tests::env_sufficient_missing_key_returns_false ... ok
[INFO] [stdout] test setup::tests::env_sufficient_missing_model_returns_false ... ok
[INFO] [stdout] test setup::tests::env_sufficient_missing_provider_returns_false ... ok
[INFO] [stdout] test setup::tests::env_sufficient_ollama_no_key_needed ... ok
[INFO] [stdout] test setup::tests::env_sufficient_openai_with_key_returns_true ... ok
[INFO] [stdout] test setup::tests::env_sufficient_unknown_provider_returns_false ... ok
[INFO] [stdout] test setup::tests::load_existing_config_returns_config_when_present ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 392 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_test.rs (/opt/rustwide/target/debug/deps/cli_test-29c71bd8da614373)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test help_contains_usage ... ok
[INFO] [stdout] test interactive_default_false ... ok
[INFO] [stdout] test parse_blind_flag ... ok
[INFO] [stdout] test parse_no_tools_flag ... ok
[INFO] [stdout] test parse_with_no_args ... ok
[INFO] [stdout] test parse_interactive_long ... ok
[INFO] [stdout] test parse_with_prompt ... ok
[INFO] [stdout] test help_contains_interactive ... ok
[INFO] [stdout] test parse_quiet_flag ... ok
[INFO] [stdout] test parse_interactive_short ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_test.rs (/opt/rustwide/target/debug/deps/config_test-1ae443b4c7f2bae3)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test completions_config_with_key ... ok
[INFO] [stdout] test config_file_max_tokens ... ok
[INFO] [stdout] test config_file_provides_defaults ... ok
[INFO] [stdout] test full_completions_config ... ok
[INFO] [stdout] test env_var_overrides_config_file ... ok
[INFO] [stdout] test missing_completions_url_errors ... ok
[INFO] [stdout] test missing_provider_name_errors ... ok
[INFO] [stderr]      Running tests/orchestrator_test.rs (/opt/rustwide/target/debug/deps/orchestrator_test-29cdc8a0e7e6369b)
[INFO] [stdout] test missing_model_name_errors ... ok
[INFO] [stdout] test config_file_system_prompt ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test empty_response_errors ... ok
[INFO] [stdout] test no_tools_with_quiet_flag ... ok
[INFO] [stdout] test no_tools_with_no_tools_flag ... ok
[INFO] [stdout] test provider_error_propagates ... ok
[INFO] [stdout] test single_shot_no_tool_calls ... ok
[INFO] [stdout] test tool_call_loop_returns_final_answer ... ok
[INFO] [stdout] test no_tools_with_blind_flag ... ok
[INFO] [stdout] test max_iterations_exceeded ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/provider_test.rs (/opt/rustwide/target/debug/deps/provider_test-2a5862510d71c006)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test anthropic_missing_api_key ... ok
[INFO] [stdout] test gemini_missing_api_key ... ok
[INFO] [stdout] test huggingface_missing_api_key ... ok
[INFO] [stdout] test anthropic_provider_name ... ok
[INFO] [stdout] test kimi_missing_api_key ... ok
[INFO] [stdout] test api_error_response ... ok
[INFO] [stdout] test gemini_stop_for_text_not_tool_calls ... ok
[INFO] [stdout] test gemini_provider_name ... ok
[INFO] [stdout] test minimax_missing_api_key ... ok
[INFO] [stdout] test huggingface_api_error ... ok
[INFO] [stdout] test gemini_supports_tools ... ok
[INFO] [stdout] test anthropic_supports_tools ... ok
[INFO] [stdout] test huggingface_provider_name ... ok
[INFO] [stdout] test mistral_missing_api_key ... ok
[INFO] [stdout] test gemini_api_error ... ok
[INFO] [stdout] test gemini_successful_completion ... ok
[INFO] [stdout] test anthropic_tool_call_response ... ok
[INFO] [stdout] test anthropic_api_error ... ok
[INFO] [stdout] test huggingface_successful_completion ... ok
[INFO] [stdout] test gemini_tool_call_response ... ok
[INFO] [stdout] test huggingface_supports_tools ... ok
[INFO] [stdout] test kimi_supports_tools ... ok
[INFO] [stdout] test anthropic_successful_completion ... ok
[INFO] [stdout] test openai_missing_api_key ... ok
[INFO] [stdout] test kimi_provider_name ... ok
[INFO] [stdout] test minimax_provider_name ... ok
[INFO] [stdout] test kimi_successful_completion ... ok
[INFO] [stdout] test mistral_supports_tools ... ok
[INFO] [stdout] test openrouter_missing_api_key ... ok
[INFO] [stdout] test no_tools_key_when_tools_empty ... ok
[INFO] [stdout] test ollama_tool_call_response ... ok
[INFO] [stdout] test minimax_successful_completion ... ok
[INFO] [stdout] test openai_successful_completion ... ok
[INFO] [stdout] test minimax_supports_tools ... ok
[INFO] [stdout] test qwen_missing_api_key ... ok
[INFO] [stdout] test ollama_no_api_key_required ... ok
[INFO] [stdout] test ollama_successful_completion ... ok
[INFO] [stdout] test ollama_provider_name ... ok
[INFO] [stdout] test openai_tool_call_response ... ok
[INFO] [stdout] test ollama_custom_base_url ... ok
[INFO] [stdout] test ollama_supports_tools ... ok
[INFO] [stdout] test openai_supports_tools ... ok
[INFO] [stdout] test openai_provider_name ... ok
[INFO] [stdout] test mistral_provider_name ... ok
[INFO] [stdout] test openrouter_provider_name ... ok
[INFO] [stdout] test responses_provider_name ... ok
[INFO] [stdout] test mistral_successful_completion ... ok
[INFO] [stdout] test unknown_provider_name ... ok
[INFO] [stdout] test openrouter_supports_tools ... ok
[INFO] [stdout] test openrouter_tool_call_response ... ok
[INFO] [stdout] test provider_name_is_completions ... ok
[INFO] [stdout] test qwen_successful_completion ... ok
[INFO] [stdout] test responses_successful_completion ... ok
[INFO] [stdout] test openrouter_successful_completion ... ok
[INFO] [stdout] test zai_missing_api_key ... ok
[INFO] [stdout] test responses_tool_call_response ... ok
[INFO] [stdout] test qwen_provider_name ... ok
[INFO] [stdout] test user_agent_header_sent_by_anthropic ... ok
[INFO] [stdout] test successful_completion_response ... ok
[INFO] [stdout] test responses_supports_tools ... ok
[INFO] [stdout] test successful_completion_no_auth ... ok
[INFO] [stdout] test responses_api_error ... ok
[INFO] [stdout] test supports_tools_true ... ok
[INFO] [stdout] test qwen_supports_tools ... ok
[INFO] [stdout] test tools_included_in_request_when_provided ... ok
[INFO] [stdout] test user_agent_header_sent_by_openrouter ... ok
[INFO] [stdout] test user_agent_header_sent_by_completions ... ok
[INFO] [stdout] test zai_provider_name ... ok
[INFO] [stdout] test user_agent_header_sent_by_huggingface ... ok
[INFO] [stdout] test user_agent_header_sent_by_openai ... ok
[INFO] [stdout] test user_agent_header_sent_by_gemini ... ok
[INFO] [stdout] test zai_supports_tools ... ok
[INFO] [stdout] test zai_successful_completion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.33s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tools_test.rs (/opt/rustwide/target/debug/deps/tools_test-fa4eafac0dd09aa6)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test ask_user_empty_choices_errors ... ok
[INFO] [stdout] test registry_no_tools_is_empty ... ok
[INFO] [stdout] test registry_quiet_and_blind_is_empty ... ok
[INFO] [stdout] test registry_quiet_excludes_ask_user ... ok
[INFO] [stdout] test registry_both_tools_by_default ... ok
[INFO] [stdout] test ask_user_missing_choices_errors ... ok
[INFO] [stdout] test ask_user_missing_question_errors ... ok
[INFO] [stdout] test registry_blind_excludes_find_command ... ok
[INFO] [stdout] test find_command_ls ... ok
[INFO] [stdout] test find_command_sh ... ok
[INFO] [stdout] test find_command_cat ... ok
[INFO] [stdout] test find_command_nonexistent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cmdify
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5313374e748353ec2a7c20a996d7f10f50f24722def42a825b1e829467baf761", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5313374e748353ec2a7c20a996d7f10f50f24722def42a825b1e829467baf761", kill_on_drop: false }`
[INFO] [stdout] 5313374e748353ec2a7c20a996d7f10f50f24722def42a825b1e829467baf761
